/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package EA_Model.IEC61970.Wires;

import EA_Model.IEC61970.Domain.AngleDegrees;
import EA_Model.IEC61970.Domain.Reactance;
import EA_Model.IEC61970.Domain.Voltage;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Phase Tap Changer</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getNominalVoltageOutOfPhase <em>Nominal Voltage Out Of Phase</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getPhaseTapChangerType <em>Phase Tap Changer Type</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getStepPhaseShiftIncrement <em>Step Phase Shift Increment</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getVoltageStepIncrementOutOfPhase <em>Voltage Step Increment Out Of Phase</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getWindingConnectionAngle <em>Winding Connection Angle</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getXStepMax <em>XStep Max</em>}</li>
 *   <li>{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getXStepMin <em>XStep Min</em>}</li>
 * </ul>
 * </p>
 *
 * @see EA_Model.IEC61970.Wires.WiresPackage#getPhaseTapChanger()
 * @model
 * @generated
 */
public interface PhaseTapChanger extends TapChanger {
	/**
	 * Returns the value of the '<em><b>Nominal Voltage Out Of Phase</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Nominal Voltage Out Of Phase</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Nominal Voltage Out Of Phase</em>' reference.
	 * @see #setNominalVoltageOutOfPhase(Voltage)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getPhaseTapChanger_NominalVoltageOutOfPhase()
	 * @model ordered="false"
	 * @generated
	 */
	Voltage getNominalVoltageOutOfPhase();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getNominalVoltageOutOfPhase <em>Nominal Voltage Out Of Phase</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Nominal Voltage Out Of Phase</em>' reference.
	 * @see #getNominalVoltageOutOfPhase()
	 * @generated
	 */
	void setNominalVoltageOutOfPhase(Voltage value);

	/**
	 * Returns the value of the '<em><b>Phase Tap Changer Type</b></em>' attribute.
	 * The literals are from the enumeration {@link EA_Model.IEC61970.Wires.PhaseTapChangerKind}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Phase Tap Changer Type</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Phase Tap Changer Type</em>' attribute.
	 * @see EA_Model.IEC61970.Wires.PhaseTapChangerKind
	 * @see #setPhaseTapChangerType(PhaseTapChangerKind)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getPhaseTapChanger_PhaseTapChangerType()
	 * @model ordered="false"
	 * @generated
	 */
	PhaseTapChangerKind getPhaseTapChangerType();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getPhaseTapChangerType <em>Phase Tap Changer Type</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Phase Tap Changer Type</em>' attribute.
	 * @see EA_Model.IEC61970.Wires.PhaseTapChangerKind
	 * @see #getPhaseTapChangerType()
	 * @generated
	 */
	void setPhaseTapChangerType(PhaseTapChangerKind value);

	/**
	 * Returns the value of the '<em><b>Step Phase Shift Increment</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Step Phase Shift Increment</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Step Phase Shift Increment</em>' reference.
	 * @see #setStepPhaseShiftIncrement(AngleDegrees)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getPhaseTapChanger_StepPhaseShiftIncrement()
	 * @model ordered="false"
	 * @generated
	 */
	AngleDegrees getStepPhaseShiftIncrement();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getStepPhaseShiftIncrement <em>Step Phase Shift Increment</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Step Phase Shift Increment</em>' reference.
	 * @see #getStepPhaseShiftIncrement()
	 * @generated
	 */
	void setStepPhaseShiftIncrement(AngleDegrees value);

	/**
	 * Returns the value of the '<em><b>Voltage Step Increment Out Of Phase</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Voltage Step Increment Out Of Phase</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Voltage Step Increment Out Of Phase</em>' reference.
	 * @see #setVoltageStepIncrementOutOfPhase(Voltage)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getPhaseTapChanger_VoltageStepIncrementOutOfPhase()
	 * @model ordered="false"
	 * @generated
	 */
	Voltage getVoltageStepIncrementOutOfPhase();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getVoltageStepIncrementOutOfPhase <em>Voltage Step Increment Out Of Phase</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Voltage Step Increment Out Of Phase</em>' reference.
	 * @see #getVoltageStepIncrementOutOfPhase()
	 * @generated
	 */
	void setVoltageStepIncrementOutOfPhase(Voltage value);

	/**
	 * Returns the value of the '<em><b>Winding Connection Angle</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Winding Connection Angle</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Winding Connection Angle</em>' reference.
	 * @see #setWindingConnectionAngle(AngleDegrees)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getPhaseTapChanger_WindingConnectionAngle()
	 * @model ordered="false"
	 * @generated
	 */
	AngleDegrees getWindingConnectionAngle();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getWindingConnectionAngle <em>Winding Connection Angle</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Winding Connection Angle</em>' reference.
	 * @see #getWindingConnectionAngle()
	 * @generated
	 */
	void setWindingConnectionAngle(AngleDegrees value);

	/**
	 * Returns the value of the '<em><b>XStep Max</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>XStep Max</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>XStep Max</em>' reference.
	 * @see #setXStepMax(Reactance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getPhaseTapChanger_XStepMax()
	 * @model ordered="false"
	 * @generated
	 */
	Reactance getXStepMax();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getXStepMax <em>XStep Max</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>XStep Max</em>' reference.
	 * @see #getXStepMax()
	 * @generated
	 */
	void setXStepMax(Reactance value);

	/**
	 * Returns the value of the '<em><b>XStep Min</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>XStep Min</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>XStep Min</em>' reference.
	 * @see #setXStepMin(Reactance)
	 * @see EA_Model.IEC61970.Wires.WiresPackage#getPhaseTapChanger_XStepMin()
	 * @model ordered="false"
	 * @generated
	 */
	Reactance getXStepMin();

	/**
	 * Sets the value of the '{@link EA_Model.IEC61970.Wires.PhaseTapChanger#getXStepMin <em>XStep Min</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>XStep Min</em>' reference.
	 * @see #getXStepMin()
	 * @generated
	 */
	void setXStepMin(Reactance value);

} // PhaseTapChanger
